package Control;

import Control.main;
import Model.User;

import java.io.*;

import static Control.main.userList;
/*
用于文件处理：
增加，删除，查改，查询
*/

public class fileProcess {

    //用于文件创建
    //参数：无
    //返回值：File类对象
    public static File fileCreate() throws IOException {
        //创建data目录
        String directPath = "d:\\JAVA\\一轮考核\\src\\data";
        File file1 = new File(directPath);
        if(file1.exists()) {
            System.out.println("");
        } else {
            file1.mkdir();
            System.out.println("目录创建成功");
        }
        //创建userData.txt文件
        String filePath = "d:\\JAVA\\一轮考核\\src\\data\\userData.txt";
        File file2 = new File(filePath);
        if(file2.exists()) {
            System.out.println("");
        } else {
            file2.createNewFile();
        }
        return file2;
    }

    //用于把集合里的数据写进文件
    //参数：File类对象
    //返回值：File类对象
    public static File fileWrite(File file) {

        //声明对象，扩大作用域
        BufferedWriter bw = null;
        try {
            bw = new BufferedWriter(new FileWriter(file));
        } catch (IOException e) {
            e.printStackTrace();
        }

        //将userList集合数据写入文件
        for (int i = 0; i < userList.size(); i++) {
            try {
                bw.write("用户id:"+userList.get(i).getId()+" 用户名:"+userList.get(i).getName()
                                    +" 密码:"+userList.get(i).getCode()+" 身份证号码:"+userList.get(i).getIdNumber()
                                    +" 联系方式:"+userList.get(i).getPhoneNumber());
                bw.write("\n");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        //关闭流
        if(bw != null){
            try {
                bw.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        System.out.println("数据保存成功");
        return file;

    }

    //用于把文件里的数据读取到集合
    //参数：无
    //返回值：无
    public static void fileRead() throws IOException {

        String filePath = "d:\\JAVA\\一轮考核\\src\\data\\userData.txt";
        BufferedReader br = new BufferedReader(new FileReader(filePath));

        String str = "";
        while((str = br.readLine()) != null) {
            String[] array = str.split("用户id:| 用户名:| 密码:| 身份证号码:| 联系方式:");
            User u = new User();
            u.setId(array[1]);
            u.setName(array[2]);
            u.setCode(array[3]);
            u.setIdNumber(array[4]);
            u.setPhoneNumber(array[5]);
            userList.add(u);
        }
        //关闭流
        if(br != null) {
            br.close();
        }
    }
}
